package home.contaduria.dao;

import java.io.Serializable;

import org.springframework.dao.DataAccessException;

/**
 * The basic GenericDao interface with CRUD methods Finders are added with
 * interface inheritance and AOP introductions for concrete implementations
 * 
 * Extended interfaces may declare methods starting with find... list...
 * iterate... or scroll... They will execute a preconfigured query that is
 * looked up based on the rest of the method name
 */

public interface GenericDao<T, PK extends Serializable> {
	void create(T newInstance) throws DataAccessException;

	T read(PK id) throws DataAccessException;

	void update(T transientObject) throws DataAccessException;

	void delete(T persistentObject) throws DataAccessException;

}
